package ws;

import java.util.ArrayList;
import java.util.Collection;

import org.orm.PersistentException;

import SOAPVO.AlumnoSOAPVO;
import SOAPVO.TipoAnotacionSOAPVO;

import com.google.gson.Gson;

public class TipoAnotacionSOA {

	/**
	 * Busca todos los tipos de anotacion y los retorna como json.
	 * Si no encuentra los tipos retorna 1
	 * y si ocurre una excepcion retorna 2
	 * 
	 * @return
	 */
	public static String getAll() {

		String json = null;
		orm.DAOFactory lDAOFactory = orm.DAOFactory.getDAOFactory();
		Collection<TipoAnotacionSOAPVO> coleccionTipoAnSOAPVO = new ArrayList<TipoAnotacionSOAPVO>();
		orm.Tan_tipoanotacion[] ormTipos;
		try {
			ormTipos = lDAOFactory.getTan_tipoanotacionDAO()
					.listTan_tipoanotacionByQuery(null, null);
			// busqueda de todos los registros existentes
			if (ormTipos.length == 0) {// si no se encontraron registros
				json = "1";
			} else {// si se encontraron registros
				for (int i = 0; i < ormTipos.length; i++) {
					TipoAnotacionSOAPVO tipo = TipoAnotacionSOAPVO
							.crearTipoAnotacionSOAPVO(ormTipos[i]);
					coleccionTipoAnSOAPVO.add(tipo);
				}// fin guardando resultados
				Gson gson = new Gson();
				json = gson.toJson(coleccionTipoAnSOAPVO);
			}
		} catch (PersistentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			json = "2";
		}
		return json;
	}

	/**
	 * Busca un tipo de anotacion por id y lo retorna como json.
	 * Si el id es nulo retorna 0, si no encuentra el tipo retorna 1
	 * y si ocurre una excepcion retorna 2
	 * 
	 * @param id
	 * @return
	 */
	
	public static String getById(int id) {

		String json = null;
		// Comprueba si la variable ingresada es nula
		if (id==0) {
			// Retorna un 0, indicando que el dato ingresado es nulo
			json = "0";
		} else {
		orm.DAOFactory lDAOFactory = orm.DAOFactory.getDAOFactory();
		Collection<TipoAnotacionSOAPVO> coleccionTipoAnSOAPVO = new ArrayList<TipoAnotacionSOAPVO>();
		orm.Tan_tipoanotacion ormTipo;
		try {
			ormTipo = lDAOFactory.getTan_tipoanotacionDAO()
					.loadTan_tipoanotacionByQuery("id='" + id + "'", null);
			// busqueda de todos los registros existentes
			if (ormTipo == null) {// si no se encontraron registros
				json = "1";
			} else {// si se encontraron registros
				TipoAnotacionSOAPVO tipo = TipoAnotacionSOAPVO
						.crearTipoAnotacionSOAPVO(ormTipo);
				coleccionTipoAnSOAPVO.add(tipo);
				Gson gson = new Gson();
				json = gson.toJson(coleccionTipoAnSOAPVO);
			}
		} catch (PersistentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			json = "2";
		}
		}
		return json;
	}

}
